<?php
namespace Product\Model\Entity;

class Opportunity {

    protected $_id;
	protected $_name;
    protected $_description;
    protected $_status;
    protected $_type;
    protected $_pricefrequency;
	protected $_item_id;
    protected $_sellpriceformula_id;
    protected $_cost_currencyvalue_id;
	protected $_listprice_currencyvalue_id;
	protected $_sellprice_currencyvalue_id;
    

    public function __construct(array $options = null) {
        if (is_array($options)) {
            $this->setOptions($options);
        }
    }

    public function __set($name, $value) {
        $method = 'set' . $name;
        if (!method_exists($this, $method)) {
            throw new Exception('Invalid Method');
        }
        $this->$method($value);
    }

    public function __get($name) {
        $method = 'get' . $name;
        if (!method_exists($this, $method)) {
            throw new Exception('Invalid Method');
        }
        return $this->$method();
    }

    public function setOptions(array $options) {
        $methods = get_class_methods($this);
        foreach ($options as $key => $value) {
            $method = 'set' . ucfirst($key);
            if (in_array($method, $methods)) {
                $this->$method($value);
            }
        }
        return $this;
    }

    public function getId() {
        return $this->_id;
    }

    public function setId($id) {
        $this->_id = $id;
        return $this;
    }

    public function getStatus() {
        return $this->_status;
    }

    public function setStatus($status) {
        $this->_status = $status;
        return $this;
    }
	
	public function getDescription() {
        return $this->_description;
    }

    public function setDescription($description) {
        $this->_description = $description;
        return $this;
    }
	
	public function getName() {
        return $this->_name;
    }

    public function setName($name) {
        $this->_name = $name;
        return $this;
    }
	
	public function getType() {
        return $this->_type;
    }

    public function setType($type) {
        $this->_type = $type;
        return $this;
    }

    public function getPrice() {
        return $this->_pricefrequency;
    }

    public function setPrice($pricefrequency) {
        $this->_pricefrequency = $pricefrequency;
        return $this;
    }
	
	public function getItem() {
        return $this->_item_id;
    }

    public function setItem($item_id) {
        $this->_item_id = $item_id;
        return $this;
    }
	
	public function getSell() {
        return $this->_sellpriceformula_id;
    }

    public function setSell($sellpriceformula_id) {
        $this->_sellpriceformula_id = $sellpriceformula_id;
        return $this;
    }
	
	public function getCost() {
        return $this->_cost_currencyvalue_id;
    }

    public function setCost($cost_currencyvalue_id) {
        $this->_cost_currencyvalue_id = $cost_currencyvalue_id;
        return $this;
    }
	
	public function getList() {
        return $this->_listprice_currencyvalue_id;
    }

    public function setList($listprice_currencyvalue_id) {
        $this->_listprice_currencyvalue_id 	 = $listprice_currencyvalue_id;
        return $this;
    }
	
	public function getSellcur() {
        return $this->_sellprice_currencyvalue_id;
    }

    public function setSellcur($sellprice_currencyvalue_id) {
        $this->sellprice_currencyvalue_id 	 = $sellprice_currencyvalue_id;
        return $this;
    }

}
?>